- 前言
- 数据持久化到 MySQL
- 1. 准备工作
- 2. nacos-mysql.sql 脚本
- 2.1 创建数据库
- 2.2 复制 nacos-mysql.sql
- 2.3 初始化数据库
- 3. 配置 application.properties
- 4. 重启 Nacos 服务
- 5. 添加配置文件
- 5.1 创建命名空间
- 5.2 添加配置
- configclient-dev.properties
- configclient-prod.properties
- 6. 测试配置
前言
我们通常将 Nacos 安装在独立的服务器上,作为独立的服务对外提供。每次重启 Nacos 服务(包括关机重启)时,我们发现之前的配置文件仍然存在,这是因为 Nacos 提供了数据(配置文件)的持久化功能。
Nacos 内置了一个嵌入式数据库——derby。我们写入 Nacos 的配置文件实际上被持久化到了这个数据库中,具体位置如图所示:
然而,官方文档指出,在 0.7 版本之前,Nacos 在单机模式下使用嵌入式数据库实现数据存储,这不利于观察数据存储的基本情况。从 0.7 版本开始,Nacos 增加了对 MySQL 数据源的支持(但仅限于 MySQL,且版本必须是 5.6.5 及以上)。
数据持久化到 MySQL
Nacos 官方提供了将数据持久化到 MySQL 的具体步骤:
1. 准备工作
Nacos 支持 MySQL,且版本必须是 5.6.5 及以上。本文采用的数据库版本为 5.7.x,具体安装教程请参考文章:
MySQL – 03、CentOS7 下安装 MySQL 5.7
2. nacos-mysql.sql 脚本
2.1 创建数据库
启动 MySQL 5.7 虚拟机,使用 SQLyog 连接 MySQL,创建数据库 nacos:
2.2 复制 nacos-mysql.sql
nacos-mysql.sql 是数据库的初始化脚本,位于 Nacos 的 conf 目录下,如下图:
或者直接解压 nacos-server-1.4.2.tar.gz,在 conf 目录下找到 nacos-mysql.sql,如下图:
2.3 初始化数据库
在 SQLyog 中将 nacos-mysql.sql 导入到新建的 nacos 数据库中,如下图:
3. 配置 application.properties
进入 Nacos 的 conf 目录,可以看到 application.properties 文件。由此可知 Nacos 是一个 Spring Boot 项目。
执行命令 vim application.properties,参照以下内容修改配置文件。修改完毕后 esc -> :wq! 保存退出。
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://数据库ip:3306/数据库名称?characterEncoding=utf8&cOnnectTimeout=1000&socketTimeout=3000&autoRecOnnect=true
db.user=用户名
db.password=密码
4. 重启 Nacos 服务
重新启动 Nacos 服务,然后在浏览器中输入 http://192.168.8.120:8848/nacos,发现之前的配置文件已消失;重新启动 config client 发现无法启动(因未读取到配置文件)。
之前的配置文件默认持久化到 Nacos 的内嵌数据库中,现在重新设置为 MySQL 数据库,但 MySQL 中尚无配置文件,因此无法读取。
5. 添加配置文件
根据文章 03.Nacos 组件之统一配置中心,再次添加配置文件(新的配置文件将自动持久化到 MySQL 数据库)。
5.1 创建命名空间
如图所示,首先创建一个 STUDY 命名空间,随后的配置文件均放置在此命名空间下。
命名空间 ID 已改变,需将 02.springcloud_alibaba_config_client 的配置文件 bootstrap.properties 中的命名空间替换为新生成的 ID。
5.2 添加配置
点击配置列表 -> STUDY 命名空间 -> 新增配置,进入新增配置页面。
configclient-dev.properties
configclient-prod.properties
6. 测试配置
重新启动 config client,发现此次能正常启动。
然后在浏览器中访问 http://localhost:8811/test/hello,能正确访问到正式配置文件中配置的属性 username 的值,如下图:
打开 SQLyog,查看 nacos 中的 config_info 表数据,可以看到持久化到数据库中的配置文件信息,如下图: